Search results for "Program analysis"

showing 10 items of 12 documents

Modular Strategies for Recursive Game Graphs

2006

AbstractMany problems in formal verification and program analysis can be formalized as computing winning strategies for two-player games on graphs. In this paper, we focus on solving games in recursive game graphs which can model the control flow in sequential programs with recursive procedure calls. While such games can be viewed as the pushdown games studied in the literature, the natural notion of winning in our framework requires the strategies to be modular with only local memory; that is, resolution of choices within a module does not depend on the context in which the module is invoked, but only on the history within the current invocation of the module. While reachability in (global…

Computer Science::Computer Science and Game TheoryTheoretical computer scienceGeneral Computer ScienceCombinatorial game theoryContext (language use)02 engineering and technology0102 computer and information sciences01 natural sciencesTheoretical Computer ScienceProgram analysisReachability0202 electrical engineering electronic engineering information engineering0101 mathematicsMathematicsbusiness.industry010102 general mathematics020207 software engineeringPushdown systemsResolution (logic)Modular designCall graphUndecidable problemModel-checkingGames in verification010201 computation theory & mathematicsbusinessComputer Science(all)
researchProduct

Hypervisor-assisted dynamic malware analysis

2021

AbstractMalware analysis is a task of utmost importance in cyber-security. Two approaches exist for malware analysis: static and dynamic. Modern malware uses an abundance of techniques to evade both dynamic and static analysis tools. Current dynamic analysis solutions either make modifications to the running malware or use a higher privilege component that does the actual analysis. The former can be easily detected by sophisticated malware while the latter often induces a significant performance overhead. We propose a method that performs malware analysis within the context of the OS itself. Furthermore, the analysis component is camouflaged by a hypervisor, which makes it completely transp…

Computer engineering. Computer hardwareSoftware_OPERATINGSYSTEMSvirtualisointiComputer Networks and CommunicationsComputer scienceContext (language use)Static program analysiscomputer.software_genreTK7885-7895Artificial IntelligenceComponent (UML)Overhead (computing)tietoturvaMalware analysiskyberturvallisuusbusiness.industryHypervisorQA75.5-76.95haittaohjelmatComputingMilieux_MANAGEMENTOFCOMPUTINGANDINFORMATIONSYSTEMSTask (computing)Electronic computers. Computer scienceEmbedded systemMalwarebusinesscomputerSoftwareInformation SystemsCybersecurity
researchProduct

Retrieving Open Source Software Licenses

2006

Open Source Software maintenance and reuse require identifying and comprehending the applied software licenses. This paper first characterizes software maintenance, and open source software (OSS) reuse which are particularly relevant in this context. The information needs of maintainers and reusers can be supported by reverse engineering tools at different information retrieval levels. The paper presents an automated license retrieval approach called ASLA. User needs, system architecture, tool features, and tool evaluation are presented. The implemented tool features support identifying source file dependencies and licenses in source files, and adding new license templates for identifying l…

Databasebusiness.industryComputer scienceSoftware developmentComputingMilieux_LEGALASPECTSOFCOMPUTINGStatic program analysisSoftware maintenanceSoftware licensecomputer.software_genreSoftware qualitySoftware constructionBackportingSoftware systembusinesscomputer
researchProduct

A dynamic program analysis to find floating-point accuracy problems

2012

Programs using floating-point arithmetic are prone to accuracy problems caused by rounding and catastrophic cancellation. These phenomena provoke bugs that are notoriously hard to track down: the program does not necessarily crash and the results are not necessarily obviously wrong, but often subtly inaccurate. Further use of these values can lead to catastrophic errors.In this paper, we present a dynamic program analysis that supports the programmer in finding accuracy problems. Our analysis uses binary translation to perform every floating-point computation side by side in higher precision. Furthermore, we use a lightweight slicing approach to track the evolution of errors.We evaluate our…

Floating pointComputer engineeringComputer scienceComputationRoundingReal-time computingBinary translationDynamic program analysisBenchmark (computing)ProgrammerProceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation
researchProduct

Towards CNC Programming Using Haskell

2004

Recent advances in Computerized Numeric Control (CNC) have allowed the manufacturing of products with high quality standards. Since CNC programs consist of a series of assembler-like instructions, several high-level languages (e.g., AutoLISP, APL, OMAC) have been proposed to raise the programming abstraction level. Unfortunately, the lack of a clean semantics prevents the development of formal tools for the analysis and manipulation of programs. In this work, we propose the use of Haskell for CNC programming. The declarative nature of Haskell provides an excellent basis to develop program analysis and manipulation tools and, most importantly, to formally prove their correctness.

Functional programmingCorrectnessProgramming languageSemantics (computer science)Computer sciencecomputer.software_genreFormal methodsProgram analysisHigh-level programming languageProgramming abstractionHaskellcomputerAutoLISPcomputer.programming_language
researchProduct

Experimental evaluation of hypertext access structures

2002

Transient hypertextual access structures (THASs) are temporary graphs formed automatically on the basis of the situation-dependent information needs of software engineers. The approach is implemented in the HyperSoft system, which is a hypertext-based software maintenance support tool. THASs highlight the relevant parts of the program and enable nonlinear browsing between them. The system also supports various graphical views whose elements are linked to the program text. This paper describes the effects of using these hypertextual structures in two separate experiments. The subjects of both experiments were computer science students (total N = 70). In both experiments, the subjects perform…

Information retrievalProgramming languagebusiness.industryComputer scienceProgram comprehensionInformation needsSoftware maintenancecomputer.software_genrelaw.inventionSoftwareProgram analysislawTransient (computer programming)HypertextCompilerbusinesscomputerSoftwareJournal of Software Maintenance and Evolution: Research and Practice
researchProduct

Lua Code: Security Overview and Practical Approaches to Static Analysis

2017

Lua is an interpreted, cross-platform, embeddable, performant and low-footprint language. Lua's popularity is on the rise in the last couple of years. Simple design and efficient usage of resources combined with its performance make it attractive for production web applications even to big organizations such as Wikipedia, CloudFlare and GitHub. In addition to this, Lua is one of the preferred choices for programming embedded and IoT devices. This context allows to assume a large and growing Lua codebase yet to be assessed. This growing Lua codebase could be potentially driving production servers and extremely large number of devices, some perhaps with mission-critical function for example i…

JavaComputer sciencevulnerabilityStatic program analysis02 engineering and technologyLuaJavaScriptSecurity testingohjelmointikielet020204 information systemsprogramming languages0202 electrical engineering electronic engineering information engineeringWeb applicationtietoturvadata securityhaavoittuvuuscomputer.programming_languageCodebaseta113business.industryComputingMilieux_PERSONALCOMPUTING020207 software engineeringPython (programming language)Static analysisAbstract syntax treeSoftware engineeringbusinesscomputer
researchProduct

Elementary transformation analysis for Array-OL

2009

Array-OL is a high-level specification language dedicated to the definition of multidimentional intensive signal processing applications. It allows to specify both the task parallelism and the data parallelism of these applications on focusing on their complex multidimensional data access patterns. Several tools exist for implementing an Array-OL specification as a data parallel program. While Array-OL can be used directly, it is often convenient to be able to deduce part of the specification from a sequential version of the application. This paper proposes such an analysis and examines its feasibility and its limits.

Multidimensional signal processingSignal processingProgram analysisTheoretical computer scienceParallel processing (DSP implementation)Data parallelismProgramming languageComputer scienceTask parallelismSpecification languageElementary transformationcomputer.software_genrecomputer2009 IEEE/ACS International Conference on Computer Systems and Applications
researchProduct

Fast narrowing-driven partial evaluation for inductively sequential programs

2005

Narrowing-driven partial evaluation is a powerful technique for the specialization of (first-order) functional and functional logic programs. However, although it gives good results on small programs, it does not scale up well to realistic problems (e.g., interpreter specialization). In this work, we introduce a faster partial evaluation scheme by ensuring the termination of the process offline . For this purpose, we first characterize a class of programs which are quasi-terminating , i.e., the computations performed with needed narrowing—the symbolic computation mechanism of narrowing-driven partial evaluation—only contain finitely many different terms (and, thus, partial evaluation termi…

Scheme (programming language)Class (computer programming)Functional programmingTheoretical computer scienceComputer scienceComputationProgram transformationcomputer.software_genreSymbolic computationComputer Graphics and Computer-Aided DesignPartial evaluationProgram analysisLogical programmingSpecialization (logic)Automatic programmingcomputerSoftwareInterpretercomputer.programming_languageProceedings of the tenth ACM SIGPLAN international conference on Functional programming
researchProduct

Inverse procedural modeling of 3D models for virtual worlds

2016

This course presents a collection of state-of-the-art approaches for modeling and editing of 3D models for virtual worlds, simulations, and entertainment, in addition to real-world applications. The first contribution of this course is a coherent review of inverse procedural modeling (IPM) (i.e., proceduralization of provided 3D content). We describe different formulations of the problem as well as solutions based on those formulations. We show that although the IPM framework seems under-constrained, the state-of-the-art solutions actually use simple analogies to convert the problem into a set of fundamental computer science problems, which are then solved by corresponding algorithms or opt…

Shape analysis (program analysis)Theoretical computer scienceComputer science020207 software engineering02 engineering and technologyAnimationGeometry processingMetaverseDomain (software engineering)Set (abstract data type)Simple (abstract algebra)0202 electrical engineering electronic engineering information engineering020201 artificial intelligence & image processingProcedural modelingACM SIGGRAPH 2016 Courses
researchProduct